-- @Author: 作者QQ2308873645
-- @Date:   2022-05-07 14:23:06
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-09-18 22:48:54


local 管理工具类 = class()

function 管理工具类:数据处理(num,arg)
  if __gge.isdebug then
    print("管理工具类",num,arg)
  end
  管理日志 = ReadFile("管理日志.txt")
  管理日志 = 管理日志.."\n"..os.date("[%Y年%m月%d日%X]:")..arg
  WriteFile("管理日志.txt", 管理日志)
  if num == 1000 then
       self:GM网关开关(arg)
  elseif num == 1001 then
      self:GM玩家管理(table.loadstring(arg))
  elseif num == 1002 then
      self:GM修改参数(table.loadstring(arg))
  elseif num == 1003 then
      self:GM赠送称谓(table.loadstring(arg))
  elseif num == 1004 then
      self:GM充值系统(table.loadstring(arg))
  elseif num == 1005 then
      self:GM定制装备(table.loadstring(arg))
  elseif num == 1006 then
      self:GM定制灵饰(table.loadstring(arg))
  elseif num == 1007 then
      self:GM定制召唤兽(table.loadstring(arg))
  elseif num == 1008 then
      self:GM地图系统(table.loadstring(arg))
  elseif num == 1009 then
    self:GM自定义刷新怪(arg)
  elseif num == 1010 then
      self:GM自定义物品(table.loadstring(arg))
  elseif num == 1011 then --转发消息
    self:GM转发消息(table.loadstring(arg))
  elseif num == 1012 then --转发消息
    self:CDK兑换(table.loadstring(arg))
  elseif num == 1013 then
      self:GM定制召唤兽装备(table.loadstring(arg))
  end
end
function 网络处理类:GM自定义刷新怪(data)
  if data == "0级BOSS" then
     任务控制类:刷出0级BOSS()
  elseif data == "10级BOSS" then
     任务控制类:刷出10级BOSS()
  elseif data == "20级BOSS" then
     任务控制类:刷出20级BOSS()
  elseif data == "30级BOSS" then
     任务控制类:刷出30级BOSS()
  elseif data == "40级BOSS" then
     任务控制类:刷出40级BOSS()
  elseif data == "50级BOSS" then
     任务控制类:刷出50级BOSS()
  elseif data == "60级BOSS" then
     任务控制类:刷出60级BOSS()
  elseif data == "70级BOSS" then
     任务控制类:刷出70级BOSS()
  elseif data == "80级BOSS" then
     任务控制类:刷出80级BOSS()
  elseif data == "90级BOSS" then
     任务控制类:刷出90级BOSS()
  elseif data == "100级BOSS" then
     任务控制类:刷出100级BOSS()
  elseif data == "110级BOSS" then
     任务控制类:刷出110级BOSS()
  elseif data == "120级BOSS" then
     任务控制类:刷出120级BOSS()
  elseif data == "130级BOSS" then
     任务控制类:刷出130级BOSS()
  elseif data == "140级BOSS" then
     任务控制类:刷出140级BOSS()
  elseif data == "150级BOSS" then
     任务控制类:刷出150级BOSS()
  elseif data == "160级BOSS" then
     任务控制类:刷出160级BOSS()
  elseif data == "170级BOSS" then
     任务控制类:刷出170级BOSS()
  elseif data == "0级终极BOSS" then
     任务控制类:刷出0级终极BOSS()
  elseif data == "10级终极BOSS" then
     任务控制类:刷出10级终极BOSS()
  elseif data == "20级终极BOSS" then
     任务控制类:刷出20级终极BOSS()
  elseif data == "30级终极BOSS" then
     任务控制类:刷出30级终极BOSS()
  elseif data == "40级终极BOSS" then
     任务控制类:刷出40级终极BOSS()
  elseif data == "50级终极BOSS" then
     任务控制类:刷出50级终极BOSS()
  elseif data == "60级终极BOSS" then
     任务控制类:刷出60级终极BOSS()
  elseif data == "70级终极BOSS" then
     任务控制类:刷出70级终极BOSS()
  elseif data == "80级终极BOSS" then
     任务控制类:刷出80级终极BOSS()
  elseif data == "90级终极BOSS" then
     任务控制类:刷出90级终极BOSS()
  elseif data == "100级终极BOSS" then
     任务控制类:刷出100级终极BOSS()
  elseif data == "110级终极BOSS" then
     任务控制类:刷出110级终极BOSS()
  elseif data == "120级终极BOSS" then
     任务控制类:刷出120级终极BOSS()
  elseif data == "130级终极BOSS" then
     任务控制类:刷出130级终极BOSS()
  elseif data == "140级终极BOSS" then
     任务控制类:刷出140级终极BOSS()
  elseif data == "150级终极BOSS" then
     任务控制类:刷出150级终极BOSS()
  elseif data == "160级终极BOSS" then
     任务控制类:刷出160级终极BOSS()
  elseif data == "170级终极BOSS" then
     任务控制类:刷出170级终极BOSS()
  elseif data == "180级终极BOSS" then
     任务控制类:刷出180级终极BOSS()
  elseif data == "190级终极BOSS" then
     任务控制类:刷出190级终极BOSS()
  elseif data == "200级终极BOSS" then
     任务控制类:刷出200级终极BOSS()
  elseif data == "魔尊" then
     任务控制类:刷出魔尊()
  elseif data == "人皇" then
     任务控制类:刷出人皇()
  elseif data == "地王" then
     任务控制类:刷出地王()
  elseif  RefreshMonsterData[data] then
    任务控制类:LoadRefreshMonster(RefreshMonsterData[data],data)
    发送网关消息(string.format("%s刷新成功",data))
  else
    发送网关消息(string.format("数据表未定义%s刷新怪任务",data))
  end
end
function 管理工具类:边境抽奖(data)

  local cj = ""
                local 奖励参数 = math.random(551)
                if 奖励参数 >=1 and 奖励参数 <=1 then
                      cj="160双加100礼包"
                elseif 奖励参数 >=2 and 奖励参数 <=15 then
                      道具处理类:给予道具(data,"修炼果",nil,nil,10, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."修炼果*10".."#"..math.random(110))
                elseif 奖励参数 >=16 and 奖励参数 <=20 then
                        local 称谓组 = {"江湖少侠称谓礼包","江湖大侠称谓礼包","江湖豪侠称谓礼包","武林高手称谓礼包","孤独求败称谓礼包","天外飞仙称谓礼包","武林盟主称谓礼包","大内密探称谓礼包","皓月战神称谓礼包"}
                  cj= 称谓组[math.random(1,#称谓组)]
                 elseif 奖励参数 >=21 and 奖励参数 <=21 then
                   local 称谓组 = {"江湖少侠称谓礼包","江湖大侠称谓礼包","江湖豪侠称谓礼包","武林高手称谓礼包","孤独求败称谓礼包","天外飞仙称谓礼包","武林盟主称谓礼包","大内密探称谓礼包","皓月战神称谓礼包"}
                  cj= 称谓组[math.random(1,#称谓组)]
                elseif 奖励参数 >=22 and 奖励参数 <=23 then
                    cj="150双加80礼包"
                elseif 奖励参数 >=24 and 奖励参数 <=25 then
                      cj="160双加100礼包"
                elseif 奖励参数 >=26 and 奖励参数 <=44 then
                   道具处理类:给予道具(data,"修炼果",nil,nil,15, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."修炼果*15".."#"..math.random(110))
                elseif 奖励参数 >=45 and 奖励参数 <=56 then
                  道具处理类:给予道具(data,"神兜兜",nil,nil,100, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."神兜兜*100".."#"..math.random(110))
                elseif 奖励参数 >=57 and 奖励参数 <=66 then
                   cj= "仙玉30000"
                  elseif 奖励参数 >=67 and 奖励参数 <=70 then
                   cj= "仙玉50000"
                  elseif 奖励参数 >=71 and 奖励参数 <=72 then
                   cj= "固神丹"
                  elseif 奖励参数 >=73 and 奖励参数 <=80 then
                     道具处理类:给予道具(data,"随机法宝礼盒",nil,nil,1, nil,true)
                   广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."随机法宝礼盒*1".."#"..math.random(110))
                  --  elseif 奖励参数 >=81 and 奖励参数 <=100 then
                  --  cj= "随机锦衣礼包"
                  --  elseif 奖励参数 >=101 and 奖励参数 <=115 then
                  --  cj= "随机脚印礼包"
                  -- elseif 奖励参数 >=116 and 奖励参数 <=133 then
                  --  cj= "随机光环礼包"
                  --   elseif 奖励参数 >=134 and 奖励参数 <=135 then
                  --  cj= "随机真·锦衣礼包"
                  --  elseif 奖励参数 >=136 and 奖励参数 <=137 then
                  --  cj= "随机真·脚印礼包"
                  -- elseif 奖励参数 >=138 and 奖励参数 <=139 then
                  --  cj= "随机真·光环礼包"
                  elseif 奖励参数 >=140 and 奖励参数 <=142 then
                   cj= "特殊魔兽要诀礼包"
                elseif 奖励参数 >=143 and 奖励参数 <=150 then
                   cj= "150级玩家礼包"
                elseif 奖励参数 >=151 and 奖励参数 <=154 then
                   cj="160无级别礼包"
                elseif 奖励参数 >=155 and 奖励参数 <=158 then
                   cj="三界密录"
                elseif 奖励参数 >=159 and 奖励参数 <=178 then
                   cj="150级玩家礼包"
                elseif 奖励参数 >=179 and 奖励参数 <=189 then
                   cj="150级玩家礼包"
                elseif 奖励参数 >=190 and 奖励参数 <=200 then
                 道具处理类:给予道具(data,"淬灵石",nil,nil,3, nil,true)
                 广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."淬灵石*3".."#"..math.random(110))
                elseif 奖励参数 >=201 and 奖励参数 <=211 then
                  道具处理类:给予道具(data,"灵箓",nil,nil,3, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."灵箓*3".."#"..math.random(110))
                  elseif 奖励参数 >=212 and 奖励参数 <=222 then
                    道具处理类:给予道具(data,"武器幻色丹",nil,nil,5, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."武器幻色丹*5".."#"..math.random(110))
                  elseif 奖励参数 >=223 and 奖励参数 <=235 then
                    道具处理类:给予道具(data,"七彩石",nil,nil,3, nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."七彩石*3".."#"..math.random(110))
                  elseif 奖励参数 >=236 and 奖励参数 <=244 then
                    道具处理类:给予道具(data,"特技符",nil,nil,1, nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."特技符*1".."#"..math.random(110))
                  elseif 奖励参数 >=245 and 奖励参数 <=253 then
                    道具处理类:给予道具(data,"不磨符",nil,nil,1, nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."不磨符*1".."#"..math.random(110))
                 elseif 奖励参数 >=254 and 奖励参数 <=255 then
                    道具处理类:给予道具(data,"愤怒符",nil,nil,1, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."愤怒符*1".."#"..math.random(110))
                  elseif 奖励参数 >=256 and 奖励参数 <=257 then
                  cj="160双加120礼包"
                   elseif 奖励参数 >=258 and 奖励参数 <=259 then
                  cj="150双加100礼包"
                  elseif 奖励参数 >=260 and 奖励参数 <=261 then
                  cj="160双加120礼包"
                   elseif 奖励参数 >=262 and 奖励参数 <=290 then
                  道具处理类:给予道具(data,"修炼果",nil,nil,10, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."修炼果*10".."#"..math.random(110))
                   elseif 奖励参数 >=291 and 奖励参数 <=294 then
                  cj="150双加120礼包"
                  elseif 奖励参数 >=295 and 奖励参数 <=296 then
                  cj="超级神兽定制24礼包"
                  elseif 奖励参数 >=297 and 奖励参数 <=300 then
                   local 随机数 = math.random(10,22)
                  道具处理类:给予道具(data,"修炼果",nil,nil,随机数, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."修炼果*"..随机数.."#"..math.random(110))
                  elseif 奖励参数 >=301 and 奖励参数 <=301 then
                  cj="十二技能定制攻宠礼包"
                   elseif 奖励参数 >=302 and 奖励参数 <=312 then
                  cj="150级玩家礼包"
                  elseif 奖励参数 >=313 and 奖励参数 <=321 then
                  cj="150双加50礼包"
                  elseif 奖励参数 >=322 and 奖励参数 <=330 then
                  cj="150双加80礼包"
                  elseif 奖励参数 >=331 and 奖励参数 <=335 then
                  cj="150双加100礼包"
                  elseif 奖励参数 >=336 and 奖励参数 <=337 then
                  cj="150双加120礼包"
                  elseif 奖励参数 >=338 and 奖励参数 <=361 then
                   道具处理类:给予道具(data,"神兜兜",nil,nil,50, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."神兜兜*50".."#"..math.random(110))
                  elseif 奖励参数 >=362 and 奖励参数 <=365 then
                  道具处理类:给予道具(data,"元神突破丹",nil,nil,3, nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."元神突破丹*3".."#"..math.random(110))
                  elseif 奖励参数 >=366 and 奖励参数 <=366 then
                  cj="三界密录"
                  elseif 奖励参数 >=367 and 奖励参数 <=370 then
                   道具处理类:给予道具(data,"元神突破丹",nil,nil,10, nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."元神突破丹*10".."#"..math.random(110))
                 elseif 奖励参数 >=371 and 奖励参数 <=377 then
                  cj="仙玉30000"
                  elseif 奖励参数 >=378 and 奖励参数 <=384 then
                  cj="仙玉20000"
                  elseif 奖励参数 >=385 and 奖励参数 <=391 then
                  cj="随机法宝礼盒"
                  elseif 奖励参数 >=392 and 奖励参数 <=400 then
                  cj="三界密录"
                  elseif 奖励参数 >=401 and 奖励参数 <=402 then
                  cj="二十四随机技能胚子"
                  elseif 奖励参数 >=403 and 奖励参数 <=407 then
                  cj="银币礼包2000W"
                  elseif 奖励参数 >=408 and 奖励参数 <=408 then
                    道具处理类:给予道具(data,"愤怒符",nil,nil,1, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."愤怒符*1".."#"..math.random(110))
                  elseif 奖励参数 >=409 and 奖励参数 <=409 then
                  道具处理类:给予道具(data,"点化石",nil,"进阶力劈华山", nil, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/喜从天降在新年打宝过程中，获得了GM奖励的#g/".."进阶力劈华山点化石*1".."#"..math.random(110))
                  elseif 奖励参数 >=410 and 奖励参数 <=415 then
                  cj="银币礼包2000W"
                 elseif 奖励参数 >=416 and 奖励参数 <=416 then
                  cj="150双加150礼包"
                 elseif 奖励参数 >=417 and 奖励参数 <=419 then
                  cj="GM随机定制礼包"
                 elseif 奖励参数 >=420 and 奖励参数 <=440 then
                 local 随机名 = {"超级飞天礼包","超级神马礼包","超级神鼠礼包","超级猪小戒礼包","超级神猪礼包","超级小白龙礼包","超级神龙礼包","超级青鸾礼包","超级赤焰兽礼包","超级神鸡兽礼包"}
                  cj=随机名[math.random(1,#随机名)]
                 elseif 奖励参数 >=441 and 奖励参数 <=448 then
                  cj="善恶点化石礼包"
                elseif 奖励参数 >=449 and 奖励参数 <=460 then
                  cj="剑荡四方点化石礼包"
                elseif 奖励参数 >=461 and 奖励参数 <=473 then
                  cj="高级神佑复生点化石礼包"
                elseif 奖励参数 >=474 and 奖励参数 <=486 then
                  local 随机数 = math.random(20,555)
                    道具处理类:给予道具(data,"新年红包",nil,nil,随机数, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."新年红包*"..随机数.."#"..math.random(110))
                elseif 奖励参数 >=487 and 奖励参数 <=488 then
                 cj="神兜兜"
                 elseif 奖励参数 >=489 and 奖励参数 <=489 then
                  -- local 随机名称 = {"二十四技能定制法宠礼包","二十四技能定制攻宠礼包","圣级神兽定制24礼包"}
                 -- cj=随机名称[math.random(1,#随机名称)]
                 --cj="银币礼包2000W"
                 --elseif 奖励参数 >=490 and 奖励参数 <=498 then
                    -- local 随机名称 = {"定制法宠礼包","定制攻宠礼包"}
                  --cj=随机名称[math.random(1,#随机名称)]
                elseif 奖励参数 >=499 and 奖励参数 <=499 then
                   local 灵饰组 = {"灵饰防御佩饰礼包","灵饰防御手镯礼包","灵饰气血手镯礼包","灵饰治疗能力耳饰礼包","灵饰治疗能力戒指礼包","灵饰气血佩饰礼包"}
                   cj=灵饰组[math.random(1,#灵饰组)]
                 elseif 奖励参数 >=500 and 奖励参数 <=501 then
                   cj= "特殊兽决宝盒"
                  elseif 奖励参数 >=502 and 奖励参数 <=514 then
                  道具处理类:给予道具(data,"神兜兜",nil,nil,33, nil,true)
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."神兜兜*33".."#"..math.random(110))
                    elseif 奖励参数 >=515 and 奖励参数 <=515 then
                     local 随机兽决 = 取极品兽诀名称()
                   道具处理类:给予道具(data,"特殊魔兽要诀",nil,随机兽决, nil, nil,true)
                   广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/喜从天降在新年打宝过程中，获得了GM奖励的#g/"..随机兽决.."#G/特殊魔兽要诀".."#"..math.random(110))
                   elseif 奖励参数 >=516 and 奖励参数 <=528 then
                    道具处理类:给予道具(data,"装备洗炼石",nil,nil,1,nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."装备洗炼石*1".."#"..math.random(110))
                     elseif 奖励参数 >=529 and 奖励参数 <=532 then
                    cj="特殊魔兽要诀礼包"
                    elseif 奖励参数 >=533 and 奖励参数 <=537 then
                     道具处理类:给予道具(data,"元神突破丹",nil,nil,5,nil,true)
                    广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/".."元神突破丹*5".."#"..math.random(110))
                    elseif 奖励参数 >=538 and 奖励参数 <=545 then
                     cj="宝宝材料大礼包"
                     elseif 奖励参数 >=546 and 奖励参数 <=547 then
                    cj="随机星光护符"
                     elseif 奖励参数 >=548 and 奖励参数 <=550 then
                    cj="随机月光护符"
                     elseif 奖励参数 >=551 and 奖励参数 <=551 then
                    cj="随机阳光护符"

                end
                if cj ~= "" then
                  道具处理类:给予道具(data,cj,nil,nil,nil,nil,true) --id,名称,等级,技能,数量,限时,打宝
                  广播消息("#hd/".."#S/(边境抽奖)".."#R/ "..玩家数据[data].角色.名称.."#Y/完成边境秘营，获得了GM奖励的#g/"..cj.."#"..math.random(110))
                end
end
function 管理工具类:CDK兑换(data)
  local 仙玉比例 = Config.cdk仙玉
  if  玩家数据[data[2]] == nil then
         发送网关消息(string.format("%d角色不存在或未上线充值CDK失败",data[2]))
         管理日志 = ReadFile("管理日志.txt")
         管理日志 = 管理日志.."\n"..os.date("[%Y年%m月%d日%X]:")..arg
        WriteFile("管理日志.txt", string.format("%d角色不存在或未上线充值CDK失败",data[2]))
  else
      if data[1]=="普通抽奖" then

                  道具处理类:给予道具(data[2],"高级英雄令",nil,nil,10)
              道具处理类:给予道具(data[2],"中级英雄令",nil,nil,10)
              道具处理类:给予道具(data[2],"初级英雄令",nil,nil,10)
              道具处理类:给予道具(data[2],"银币礼包5000W")
              道具处理类:给予道具(data[2],"仙玉50000")
               道具处理类:给予道具(data[2],"彩饰体验卡",nil,nil,5)
               道具处理类:给予道具(data[2],"头像体验卡",nil,nil,5)
   广播消息("#hd/".."#S/(首充CDK)".."#R/ "..玩家数据[data[2]].角色.名称.."#Y/在首充CDK中，获得了GM奖励的#g/银币礼包5000W、英雄令*10、仙玉50000、头像体验卡*5、彩饰体验卡*5".."#"..math.random(110))

      elseif data[1]=="中等抽奖" then

        玩家数据[data[2]].角色.中等抽奖 = 玩家数据[data[2]].角色.中等抽奖 + 1
        发送数据(玩家数据[data[2]].连接id,7,"#Y/抽奖次数增加了#R/1#Y/次")

     elseif data[1]=="极品抽奖" then


        玩家数据[data[2]].角色.中等抽奖 = 玩家数据[data[2]].角色.中等抽奖 + 10

       发送数据(玩家数据[data[2]].连接id,7,"#Y/抽奖次数增加了#R/10#Y/次")
      elseif data[1] == "银子1E" then-------战令会员
        玩家数据[data[2]].战令.会员 = 1-------战令会员
      发送数据(玩家数据[data[2]].连接id,7,"#Y/战令会员开通成功")
      elseif data[1] == "银子5E" then-------至尊卡
        角色处理类:添加人民币(玩家数据[data[2]],100,"cdk兑换"..data[1])-------至尊卡
      elseif data[1] == "银子10E" then
        角色处理类:添加银子(玩家数据[data[2]],1000000000,"cdk兑换"..data[1])
      elseif data[1] == "银子20E" then
        角色处理类:添加银子(玩家数据[data[2]],2000000000,"cdk兑换"..data[1])
      elseif data[1] == "银子50E" then
        角色处理类:添加银子(玩家数据[data[2]],5000000000,"cdk兑换"..data[1])
      elseif data[1] == "仙玉6元" then
         角色处理类:添加仙玉(玩家数据[data[2]],仙玉比例*6,"cdk兑换"..data[1])
         玩家数据[data[2]].角色.vip.充值 = 玩家数据[data[2]].角色.vip.充值 + 仙玉比例*6
      elseif data[1] == "仙玉50元" then
         角色处理类:添加仙玉(玩家数据[data[2]],仙玉比例*50,"cdk兑换"..data[1])
         玩家数据[data[2]].角色.vip.充值 = 玩家数据[data[2]].角色.vip.充值 + 仙玉比例*50
      elseif data[1] == "仙玉100元" then
         角色处理类:添加仙玉(玩家数据[data[2]],仙玉比例*100,"cdk兑换"..data[1])
         玩家数据[data[2]].角色.vip.充值 = 玩家数据[data[2]].角色.vip.充值 + 仙玉比例*100
      elseif data[1] == "仙玉500元" then
         角色处理类:添加仙玉(玩家数据[data[2]],仙玉比例*500,"cdk兑换"..data[1])
         玩家数据[data[2]].角色.vip.充值 = 玩家数据[data[2]].角色.vip.充值 + 仙玉比例*500
      elseif data[1] == "仙玉1000元" then
         角色处理类:添加仙玉(玩家数据[data[2]],仙玉比例*1000,"cdk兑换"..data[1])
         玩家数据[data[2]].角色.vip.充值 = 玩家数据[data[2]].角色.vip.充值 + 仙玉比例*1000
      end
      发送网关消息(string.format("%d角色兑换CDK成功",data[2]))
  end
end

function 管理工具类:GM转发消息(data)
  if  玩家数据[data[2]] == nil then
         发送网关消息(string.format("%d角色不存在或未上线",data[1]))
  else
       发送数据(玩家数据[data[2]].连接id,7,"#Y/"..data[1])
  end
end

function 管理工具类:GM自定义物品(data)
  if   data[1] == "全服" then
     for k,v in pairs(玩家数据) do
           for i = 3,6 do
            if data[i] == "" then
               data[i] = nil
            elseif i == 3 or i == 5 or i == 6 then
               data[i] =tonumber(data[i])
            end
          end
          if not v.假人  and v.角色.等级 > 68 then
          道具处理类:给予道具(k,data[2],data[3],data[4],data[5],data[6])
          end
          广播消息(9,"#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的红包，打开一看竟是#r/" .. data[2] .. "。#S/玩家热情不断,GM福利嗨翻天".."#"..math.random(110))
      end
    发送网关消息(string.format("全服69级以上玩家发送%s成功",data[2]))
  else
    if  玩家数据[data[1]] == nil then
           发送网关消息(string.format("%d角色不存在或未上线",data[1]))
    elseif ItemData[data[2]] then
         for i = 3,6 do
            if data[i] == "" then
               data[i] = nil
            elseif i == 3 or i == 5 or i == 6 then
               data[i] = tonumber(data[i])
            end
          end
          道具处理类:给予道具(data[1],data[2],data[3],data[4],data[5],data[6])
          发送网关消息(string.format("发送%s成功",data[2]))
    else
      发送网关消息(string.format("数据表未定义%s物品",data[2]))
    end
  end
end

function 管理工具类:GM自定义刷新怪(data)
  if RefreshMonsterData[data] then
    任务控制类:加载怪物(RefreshMonsterData[data],data)
    发送网关消息(string.format("%s刷新成功",data))
  else
    发送网关消息(string.format("数据表未定义%s刷新怪任务",data))
  end
end

function 管理工具类:GM修改参数(...)
    local num,text = unpack(...)
    if text == "调整经验" then
        ServerConfig.经验获得率 = tonumber(num)
        发送网关消息("当前服务端的经验获得率改为"..num)
         广播消息("当前服务器的经验倍率为："..ServerConfig.经验获得率);
         发送游戏公告("当前服务器的经验倍率为："..ServerConfig.经验获得率);
    elseif text == "限制等级" then
      ServerConfig.限制等级 = tonumber(num)
          发送网关消息("当前服务端的限制等级改为"..num)
         广播消息("当前服务器的限制等级为："..ServerConfig.限制等级);
         发送游戏公告("当前服务器的限制等级为："..ServerConfig.限制等级);

    end
end

function 管理工具类:GM地图系统(...)
  local arg = ...
  local MapNumber = tonumber(arg[2])
    if arg[1] == "更新数据" then
    elseif arg[1] == "清除摆摊" then
      for n, v in pairs(地图处理类.MapData[MapNumber].玩家) do
         if 玩家数据[n] and 玩家数据[n].摆摊 then
              摊位数据[n] = nil
              玩家数据[n].摆摊 = nil
              地图处理类.MapData[MapNumber].摆摊人数 = 地图处理类.MapData[MapNumber].摆摊人数 - 1
              发送数据(玩家数据[n].连接id, 7, "#y/收摊回家玩老婆咯！")
              发送数据(玩家数据[n].连接id, 20008,"")
              地图处理类:更新摊位(n, "", MapNumber)
         end
      end
    elseif arg[1] == "清除假人" then
        假人移动 = false
        协程列表["假人移动"] = nil
        for n, v in pairs(地图处理类.MapData[MapNumber].玩家) do
           if 玩家数据[n] and 玩家数据[n].假人 then
                  if 玩家数据[n].摆摊 then
                      地图处理类.MapData[MapNumber].摆摊人数 = 地图处理类.MapData[MapNumber].摆摊人数 - 1
                  end
                  地图处理类:移除玩家(玩家数据[n].地图, n)
                  地图处理类.MapData[MapNumber].假人 = 地图处理类.MapData[MapNumber].假人 - 1
                  玩家数据[n] = nil
           end
        end
         collectgarbage("collect")
    elseif arg[1] == "清除怪物" then
      for k,v in pairs(地图处理类.MapData[MapNumber].单位组) do
           for n, s in pairs(地图处理类.MapData[MapNumber].玩家) do
            if 玩家数据[n] then
                发送数据(玩家数据[n].连接id,1018,v.任务id)
             end
          end
          地图处理类.MapData[MapNumber].单位组[k]=nil
      end
    elseif arg[1] == "清除玩家" then
        for n, v in pairs(地图处理类.MapData[MapNumber].玩家) do
         if 玩家数据[n]  then
            发送数据(玩家数据[n].连接id,99998,"GM清空地图处理")
         end
        end
    elseif arg[1] == "添加假人" then
      if not 地图处理类.MapData[MapNumber].坐标 then
        发送网关消息("这个地图不支持刷出假人,请尝试在主城刷新，如果有特别要求请联系作者")
         return
      end
        local 玩家账号 = 取目录下名称(ServerDirectory.."玩家信息")
        if arg[3] > #玩家账号 then
          arg[3] = #玩家账号
        end
        协程列表["假人生成"]=nil
        local co = coroutine.wrap(
          function(玩家账号,arg,MapNumber)
              local ls = 0;
              for i = 1,arg do
                  网络处理类:假人进入游戏处理({账号 = 玩家账号[i],编号 = 1,ip = "127.0.0.1",id = 0},MapNumber)
                  ls = ls + 1
                  if ls == 30 then
                      ls = 0
                       发送数据(1,993,cjson.encode({
                                Role = tostring(取表数量(地图处理类.MapData[MapNumber].玩家)),
                                Monster = tostring(#地图处理类.MapData[MapNumber].单位组),
                                Model = tostring(地图处理类.MapData[MapNumber].假人),
                                Stall = tostring(地图处理类.MapData[MapNumber].摆摊人数),
                                Number = tostring(地图处理类.MapData[MapNumber].编号)
                                }))
                        coroutine.yield()
                  end
              end
              return true
          end

          )
        if not co(玩家账号,arg[3],MapNumber) then
              协程列表["假人生成"] = co
        end
         假人移动 = true
    end
      发送数据(1,993,cjson.encode({
      Role = tostring(取表数量(地图处理类.MapData[MapNumber].玩家)),
      Monster = tostring(#地图处理类.MapData[MapNumber].单位组),
      Model = tostring(地图处理类.MapData[MapNumber].假人),
      Stall = tostring(地图处理类.MapData[MapNumber].摆摊人数),
      Number = tostring(地图处理类.MapData[MapNumber].编号)
      }))
     发送网关消息(string.format("地图%s成功",arg[1]))
end

function 管理工具类:GM充值系统(...)
  local arg = ...
    if  玩家数据[arg[1]] == nil then
         发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
         return
    elseif arg[2] == "充值仙玉" then
        local 账号 = id取账号(arg[1])
          local 临时日志 =  ReadFile("玩家信息/账号" .. 账号 .. "/"..arg[1].."/充值记录.txt")
              临时日志 = 临时日志 .. "\n仙玉充值：" .. os.date("%Y-%m-%d") .. "充值" .. arg[3] .. "点仙玉，网关操作"
              WriteFile("玩家信息/账号" .. 账号 .. "/"..arg[1].."/充值记录.txt", 临时日志)
              角色处理类:添加仙玉(玩家数据[arg[1]],arg[3],"网关充值")
              玩家数据[arg[1]].角色.vip.充值 = 玩家数据[arg[1]].角色.vip.充值+arg[3]
              发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点仙玉已经到账")
    elseif arg[2] == "充值银子" then
        角色处理类:添加银子(玩家数据[arg[1]],arg[3],"GM充值")
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点银子已经到账")
    elseif arg[2] == "充值储备" then
        角色处理类:添加储备(玩家数据[arg[1]],arg[3],"GM充值")
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点储备已经到账")
    elseif arg[2] == "充值经验" then
        角色处理类:添加经验(玩家数据[arg[1]],arg[3], "GM充值")
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点经验已经到账")

    elseif arg[2] == "充值门贡" then
        玩家数据[arg[1]].角色.门贡=玩家数据[arg[1]].角色.门贡+arg[3]
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点门贡已经到账")

    elseif arg[2] == "充值帮贡" then
        角色处理类:充值帮贡(玩家数据[arg[1]],arg[3], "GM充值")
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点帮贡已经到账")

    elseif arg[2]=="充活跃度" then
        角色处理类:充值活跃度(玩家数据[arg[1]],arg[3], "GM充值")
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点活跃度已经到账")
    else
        角色处理类["添加"..arg[2]](角色处理类,玩家数据[arg[1]],arg[3])
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/您充值的#r/" .. arg[3] .. "#y/点"..arg[2].."已经到账")
    end
        发送网关消息(string.format("角色%d%s%s",arg[1],arg[2],arg[3]))
end

function 管理工具类:GM赠送称谓(...)
  local arg = ...
     if  玩家数据[arg[1]] == nil then
         发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    elseif 角色处理类:检查称谓(玩家数据[arg[1]],arg[2]) then
      发送网关消息(玩家数据[arg[1]].角色.名称.."已有称谓无法添加")
    else
      角色处理类:添加称谓(玩家数据[arg[1]],arg[2])
      发送数据(玩家数据[arg[1]].连接id, 7, "#y/你获得GM赠送的"..arg[2].."称谓")
      发送网关消息(玩家数据[arg[1]].角色.名称.."赠送"..arg[2].."称谓成功")
    end
end

function 管理工具类:GM定制装备(...)
  local arg = ...
     if  玩家数据[arg[1]] == nil then
        发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    else
        local 装备数据 = 分割文本(arg[2],"*-*")
        装备处理类:定制装备(arg[1],装备数据[1],装备数据[2],装备数据[3],装备数据[3],装备数据[4],装备数据[5],装备数据[6],装备数据[7],装备数据[8])
        发送网关消息(string.format("%d发送装备成功",arg[1]))
    end
end

function 管理工具类:GM定制召唤兽装备(...)
  local arg = ...
     if  玩家数据[arg[1]] == nil then
        发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    else
        local 装备数据 = 分割文本(arg[2],"*-*")
        装备处理类:定制召唤兽装备(arg[1],装备数据[1],装备数据[2],装备数据[3],装备数据[4],装备数据[5],装备数据[6],装备数据[7])
        发送网关消息(string.format("%d发送装备成功",arg[1]))
    end
end

function 管理工具类:GM定制召唤兽(...)
  local arg = ...
     if  玩家数据[arg[1]] == nil then
        发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    else
        local 数据 = 分割文本(arg[2],"*-*")
        if BBData[数据[2]] == nil then
            发送网关消息(string.format("召唤兽数据表未定义%s召唤兽",数据[2]))
            return
        end
        玩家数据[arg[1]].召唤兽:定制召唤兽(数据)
        发送网关消息(string.format("%d召唤兽发送成功",arg[1]))
        发送数据(玩家数据[arg[1]].连接id, 7, "#y/你获得GM赠送的神级召唤兽")
    end
end

function 管理工具类:GM定制灵饰(...)
  local arg = ...
     if  玩家数据[arg[1]] == nil then
        发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    else
        local 装备数据 = 分割文本(arg[2],"*-*")
        装备处理类:定制灵饰(arg[1],装备数据[1],装备数据[2],装备数据[3],装备数据[4],装备数据[5],装备数据[6])
        发送网关消息(string.format("%d发送装备成功",arg[1]))
    end
end

function 管理工具类:GM玩家管理(...)
  local arg = ...
     if arg[2] == "解封账号" then
        if  file_exists("玩家信息/账号" .. arg[1] .. "/账号.txt") == false then
            发送网关消息(string.format("%s账号不存在",arg[1]))
        else
            f函数.写配置(ServerDirectory.."玩家信息/账号" .. arg[1] .. "/账号.txt", "账号信息", "封禁", 0)
            发送网关消息(string.format("%s账号解封成功",arg[1]))
        end
      return
     end
     arg[1] = arg[1] + 0
     if  玩家数据[arg[1]] == nil then
         发送网关消息(string.format("%d角色不存在或未上线",arg[1]))
    elseif arg[2] == "强制下线" then
                玩家数据[arg[1]] = nil

                发送网关消息(string.format("%d退出了游戏",arg[1]))
    elseif arg[2] == "查ID账号" then
      发送网关消息(string.format("%d角色账号为%s",arg[1],id取账号(arg[1])))
    elseif arg[2] == "退出战斗" then
            if 玩家数据[arg[1]].战斗 == 0 then
                 发送网关消息(string.format("%d未处于战斗中",arg[1]))
            else
                战斗准备类.战斗盒子[玩家数据[arg[1]].战斗]:强制结束战斗()
                战斗准备类.战斗盒子[玩家数据[arg[1]].战斗] = nil
                发送网关消息(string.format("%d退出了战斗",arg[1]))
            end
    elseif arg[2] == "封禁账号" then
        封禁账号(玩家数据[arg[1]],"GM封禁")
        发送网关消息(string.format("%d封禁成功",arg[1]))
    elseif arg[2] =="网关封禁账号" then
        封禁账号(玩家数据[arg[1]],"系统封禁")
        发送网关消息(string.format("%d因拦截封包封禁成功",arg[1]))
    elseif arg[2] == "清除摆摊" then
        摆摊处理类:数据处理(arg[1], 12)
    elseif arg[2] == "清空背包" then
        角色处理类:清空包裹(玩家数据[arg[1]],arg[1])
        发送网关消息(string.format("%d清除背包成功",arg[1]))
    elseif arg[2]=="小精灵升级" then
        if 玩家数据[arg[1]].角色.等级 < 69 then
          发送网关消息(string.format("%d等级未达到69级的玩家无法操作",arg[1]))
        return
        elseif 玩家数据[arg[1]].角色.门派 == "无" then
         发送网关消息(string.format("%d未拜入门派无法操作",arg[1]))
        return
        elseif 玩家数据[arg[1]].角色.精灵.激活 == 0 then
        发送网关消息(string.format("%d您还未激活小精灵无需重置",arg[1]))
        return
        elseif 玩家数据[arg[1]].角色.精灵.等级 == 6 then
         发送网关消息(string.format("%d你的精灵已经满级",arg[1]))
       return
       end
        角色处理类:小精灵升级(玩家数据[arg[1]],arg[1])
        发送网关消息(string.format("%d小精灵升级成功",arg[1]))
    elseif arg[2]=="小精灵刷新属性" then
      if 玩家数据[arg[1]].角色.等级 < 69 then
          发送网关消息(string.format("%d等级未达到69级的玩家无法操作",arg[1]))
        return
        elseif 玩家数据[arg[1]].角色.门派 == "无" then
         发送网关消息(string.format("%d未拜入门派无法操作",arg[1]))
        return
        elseif 玩家数据[arg[1]].角色.精灵.激活 == 0 then
        发送网关消息(string.format("%d您还未激活小精灵无需重置",arg[1]))
        return
       end
        角色处理类:小精灵刷新属性(玩家数据[arg[1]],arg[1])
        发送网关消息(string.format("%d小精灵刷新属性成功",arg[1]))
    elseif arg[2] == "限制喊话" then
        玩家数据[arg[1]].角色.限制喊话=true
        发送网关消息(string.format("%d限制了喊话功能",arg[1]))
    elseif arg[2] == "解除喊话" then
        玩家数据[arg[1]].角色.限制喊话=false
        发送网关消息(string.format("%d解除了限制了喊话功能",arg[1]))
    elseif arg[2] == "删除角色" then
       角色处理类:删除角色(玩家数据[arg[1]].角色,arg[1])
       发送网关消息(string.format("%d角色删除成功",arg[1]))
    end
end
function 管理工具类:打宝抽奖(data)

       local 总奖励 = f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","总概率","总概率随机数") + 0
       local 奖励参数 = math.random(1,总奖励)
       local 奖品数量 = f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","总概率","抽奖物品总数") + 0
         for n=1,奖品数量  do

              local 名称 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","奖品及概率","物品["..n.."]")
           local 起始数量 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","奖品及概率","起始数量["..n.."]")+0
           local 结束数量 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","奖品及概率","结束数量["..n.."]")+0
           local 临时几率 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励.txt","奖品及概率","概率["..n.."]")+0

            if 奖励参数 <= 临时几率+0 then

               if 起始数量 > 0 and 结束数量 >0 then
            local 临时数量 = math.random(起始数量,结束数量)
                道具处理类:给予道具(data,名称,nil,nil,临时数量+0,nil,true)
                广播消息(  "#hd/".."#S/(福利BOSS)".."#R/ "..玩家数据[data].角色.名称.." #Y/击败了福利BOSS，获得了GM奖励的#g/ "..名称.."*".. 临时数量 .. "#"..math.random(110))
               else
                道具处理类:给予道具(data,名称, nil, nil, nil, nil,true)
                广播消息(  "#hd/".."#S/(福利BOSS)".."#R/ "..玩家数据[data].角色.名称.." #Y/击败了福利BOSS，获得了GM奖励的#g/ "..名称.."#"..math.random(110))
               end
            break
           end
          end

end




function 管理工具类:打宝抽奖1(data)

       local 总奖励 = f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","总概率","总概率随机数") + 0
       local 奖励参数 = math.random(1,总奖励)
       local 奖品数量 = f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","总概率","抽奖物品总数") + 0
         for n=1,奖品数量  do

              local 名称 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","奖品及概率","物品["..n.."]")
           local 起始数量 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","奖品及概率","起始数量["..n.."]")+0
           local 结束数量 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","奖品及概率","结束数量["..n.."]")+0
           local 临时几率 =f函数.读配置(ServerDirectory.."配置文件/打宝奖励1.txt","奖品及概率","概率["..n.."]")+0

            if 奖励参数 <= 临时几率+0 then

               if 起始数量 > 0 and 结束数量 >0 then
            local 临时数量 = math.random(起始数量,结束数量)
                道具处理类:给予道具(data,名称,nil,nil,临时数量+0, nil,true)
                广播消息(  "#hd/".."#S/(福利BOSS)".."#R/ "..玩家数据[data].角色.名称.." #Y/击败了福利BOSS，获得了GM奖励的#g/ "..名称.."*".. 临时数量 .. "#"..math.random(110))
               else
                道具处理类:给予道具(data,名称, nil, nil, nil, nil,true)
                广播消息(  "#hd/".."#S/(福利BOSS)".."#R/ "..玩家数据[data].角色.名称.." #Y/击败了福利BOSS，获得了GM奖励的#g/ "..名称.."#"..math.random(110))
               end
            break
           end
          end
end
function 管理工具类:GM网关开关(data)
  if data =="当前监听关闭" then
    当前监听 = false
    发送网关消息(data)
  elseif data == "队伍监听关闭" then
    队伍监听 = false
    发送网关消息(data)
  elseif data == "世界监听关闭" then
    世界监听 = false
    发送网关消息(data)
  elseif data == "帮派监听关闭" then
    帮派监听 = false
    发送网关消息(data)
  elseif data == "门派监听关闭" then
    门派监听 = false
    发送网关消息(data)
  elseif data == "传闻监听关闭" then
    传闻监听 = false
    发送网关消息(data)
  elseif data == "当前监听开启" then
    当前监听 = true
    发送网关消息(data)
  elseif data == "队伍监听开启" then
    队伍监听 = true
    发送网关消息(data)
  elseif data == "世界监听开启" then
    世界监听 = true
    发送网关消息(data)
  elseif data == "帮派监听开启" then
    帮派监听 = true
    发送网关消息(data)
  elseif data == "门派监听开启" then
    门派监听 = true
    发送网关消息(data)
  elseif data == "传闻监听开启" then
    传闻监听 = true
    发送网关消息(data)
  elseif data == "刷出天罡" then
  任务控制类:刷新天罡星()
  任务控制类:刷出天罡星69()
      任务控制类:刷出天罡星2()
      任务控制类:刷出天罡星3()
      任务控制类:刷出天罡星4()
      任务控制类:刷出天罡星5()
      任务控制类:刷出天罡星6()
      发送网关消息(string.format("%s成功",data))
  elseif data == "刷出地煞" then
      任务控制类:刷新地妖星()
      发送网关消息(string.format("%s成功",data))
  elseif data == "更新全部数据" then
    CardData = ReadExcel("变身卡数据",ServerConfig.key)
    MapData = ReadExcel("地图数据",ServerConfig.key)
    TransferData = ReadExcel("传送圈数据",ServerConfig.key)
    RefreshMonsterData = ReadExcel("刷新怪数据",ServerConfig.key)
    RefreshMonsterTime = {}
    for k,v in pairs(RefreshMonsterData) do
    RefreshMonsterTime[k] = {v.刷新时间,v.日期}
    end
    ModelData = ReadExcel("模型数据",ServerConfig.key)
    SkillData = ReadExcel("技能数据",ServerConfig.key)
    Config = ReadExcel("Config",ServerConfig.key)[f函数.读配置(ServerDirectory .. "config.ini", "mainconfig", "ft") + 0]
    ItemData = ReadExcel("物品数据",ServerConfig.key)
    NpcData = ReadExcel("NPC数据",ServerConfig.key)
    QuretionBank = ReadExcel("题库数据",ServerConfig.key)
    BBData = ReadExcel("召唤兽数据",ServerConfig.key)
    MonsterData = ReadExcel("怪物数据",ServerConfig.key)
    ShopData = ReadExcel("商城数据",ServerConfig.key)
    LinkTask = ReadExcel("环任务数据",ServerConfig.key)
    WeaponModel = ReadExcel("光武拓印",ServerConfig.key)
    Reward = ReadExcel("首服奖励",ServerConfig.key)
    LinkTaskDialogue = {}
    LinkTaskClear = {}
    LinkTaskEvent1 = {}
    LinkTaskEvent2 = {}
    LinkTaskEvent3 = {}
    for k,v in pairs(LinkTask) do
        LinkTaskDialogue[v.事件] = k
        LinkTaskClear["取消"..k] = k
        LinkTaskEvent1["给予道具("..k..")"] = k
        LinkTaskEvent2["打听消息("..k..")"] = k
        LinkTaskEvent3["开始挑战("..k..")"] = k
    end
    LabelData = ReadExcel("称谓数据",ServerConfig.key)
    古玩数据 = {}
  local tempLottery = ReadExcel("抽奖数据",ServerConfig.key)
   Lottery = {普通抽奖 = {},中等抽奖 = {},极品抽奖 = {}}
   for key,value in  pairs(tempLottery) do
      for k,v in  pairs(Lottery) do
          if value.分类 == k then
            table.insert(Lottery[k],value)
            break;
          end
      end
   end
  merchandise={银子={},仙玉={},头像={},彩饰={},锦衣={},光环={},脚印={},祥瑞={},传音={},战锦={},翅膀={},法宝={},孩子={},召唤兽={},活动积分={},知了积分={},天罡积分={},单人积分={},成就积分={},特殊积分={},活跃度={},比武积分={},副本积分={},地煞积分={},定制={},剑侠客={},逍遥生={},飞燕女={},英女侠={},巫蛮儿={},偃无师={},虎头怪={},巨魔王={},骨精灵={},狐美人={},鬼潇潇={},杀破狼={},龙太子={},神天兵={},玄彩娥={},舞天姬={},桃夭夭={},羽灵神={}}
   for key,value in  pairs(ShopData) do
      for k,v in  pairs(merchandise) do
          if value.分类 == k then
            table.insert(merchandise[k],key)
            break;
          end
      end
      if   value.分类 == "剑侠客" or value.分类 == "逍遥生" or value.分类 == "飞燕女" or value.分类 == "英女侠" or value.分类 == "巫蛮儿" or value.分类 == "偃无师" or value.分类 == "虎头怪" or value.分类 == "巨魔王" or value.分类 == "骨精灵" or value.分类 == "狐美人" or value.分类 == "鬼潇潇" or value.分类 == "杀破狼" or value.分类 == "龙太子" or value.分类 == "神天兵" or value.分类 == "玄彩娥" or value.分类 == "舞天姬" or value.分类 == "桃夭夭" or value.分类 == "羽灵神"then
        ShopData[key].锦衣 = value.名称
        ShopData[key].造型 = value.技能
        ShopData[key].技能 = nil
        ShopData[key].名称 = "GM定制礼包"
        ShopData[key].类型 = "定制锦衣"
      elseif value.分类 == "召唤兽" then
        ShopData[key] = AddPet(value.名称,value.技能,value.价格)
      else
        ShopData[key] = AddItem(value.名称,value.等级,value.技能,nil,value.价格,nil,value.图标,nil,value.限时)
      end
        ShopData[key].分类 = value.分类
   end
    发送网关消息(string.format("%s成功",data))
  elseif data == "更新变身卡数据" then
         CardData = ReadExcel("变身卡数据",ServerConfig.key)
         发送网关消息(string.format("%s成功",data))
  elseif data == "更新称谓数据" then
         LabelData = ReadExcel("称谓数据",ServerConfig.key)
         发送网关消息(string.format("%s成功",data))
  elseif data == "更新地图数据" then
       MapData = ReadExcel("地图数据",ServerConfig.key)
       发送网关消息(string.format("%s成功",data))
  elseif data == "更新传送圈数据" then
       TransferData = ReadExcel("传送圈数据",ServerConfig.key)
       发送网关消息(string.format("%s成功",data))
  elseif data == "更新刷怪数据" then
      RefreshMonsterData = ReadExcel("刷新怪数据",ServerConfig.key)
      RefreshMonsterTime = {}
  for k,v in pairs(RefreshMonsterData) do
       RefreshMonsterTime[k] = {v.刷新时间,v.日期}
  end
      发送网关消息(string.format("%s成功",data))
  elseif data == "更新技能数据" then
        SkillData = ReadExcel("技能数据",ServerConfig.key)
         发送网关消息(string.format("%s成功",data))
  elseif data == "更新物品数据" then
        ItemData = ReadExcel("物品数据",ServerConfig.key)
        发送网关消息(string.format("%s成功",data))
  elseif data == "更新NPC数据" then
     NpcData=ReadExcel("NPC数据",ServerConfig.key)
     发送网关消息(string.format("%s成功",data))
  elseif data == "更新召唤兽数据" then
     BBData=ReadExcel("召唤兽数据",ServerConfig.key)
     发送网关消息(string.format("%s成功",data))
  elseif data == "更新商城数据" then
    ShopData = ReadExcel("商城数据",ServerConfig.key)
merchandise={银子={},头像={},彩饰={},仙玉={},锦衣={},光环={},脚印={},祥瑞={},传音={},战锦={},翅膀={},法宝={},孩子={},召唤兽={},活动积分={},知了积分={},天罡积分={},单人积分={},成就积分={},特殊积分={},活跃度={},比武积分={},副本积分={},地煞积分={},定制={}}
  for key,value in  pairs(ShopData) do
      for k,v in  pairs(merchandise) do
          if value.分类 == k then
            table.insert(merchandise[k],key)
            break;
          end
      end
      if value.分类 == "定制" then
        ShopData[key].锦衣 = value.名称
        ShopData[key].造型 = value.技能
        ShopData[key].技能 = nil
        ShopData[key].名称 = "GM定制礼包"
        ShopData[key].类型 = "定制锦衣"
      elseif value.分类 == "召唤兽" then
        ShopData[key] = AddPet(value.名称,value.技能,value.价格)
      else
        ShopData[key] = AddItem(value.名称,value.等级,value.技能,nil,value.价格,nil,value.图标,nil,value.限时)
      end
        ShopData[key].分类 = value.分类
   end
   发送网关消息(string.format("%s成功",data))
  elseif data == "更新任务链数据" then
    LinkTask = ReadExcel("环任务数据",ServerConfig.key)
    LinkTaskDialogue = {}
    LinkTaskClear = {}
    LinkTaskEvent1 = {}
    LinkTaskEvent2 = {}
    LinkTaskEvent3 = {}
    for k,v in pairs(LinkTask) do
        LinkTaskDialogue[v.事件] = k
        LinkTaskClear["取消"..k] = k
        LinkTaskEvent1["给予道具("..k..")"] = k
        LinkTaskEvent2["打听消息("..k..")"] = k
        LinkTaskEvent3["开始挑战("..k..")"] = k
    end
    发送网关消息(string.format("%s成功",data))

  elseif data == "更新抽奖数据" then
  local tempLottery = ReadExcel("抽奖数据",ServerConfig.key)
   Lottery = {普通抽奖 = {},中等抽奖 = {},极品抽奖 = {}}
   for key,value in  pairs(tempLottery) do

      for k,v in  pairs(Lottery) do
          if value.分类 == k then
            table.insert(Lottery[k],value)
            break;
          end
      end
   end
  发送网关消息(string.format("%s成功",data))

  elseif data == "更新怪物数据" then
    MonsterData=ReadExcel("怪物数据",ServerConfig.key)
    发送网关消息(string.format("%s成功",data))

  elseif data == "更新首服奖数据" then
    Reward = ReadExcel("首服奖励",ServerConfig.key)
    发送网关消息(string.format("%s成功",data))


  elseif data == "刷出门派入侵" then
        师门守卫刷新 = math.random(3600, 7200) + os.time()
        任务控制类:刷出师门守卫()
        发送网关消息(string.format("%s成功",data))

 elseif data == "华山论剑开关" then
     华山论剑开关 = not 华山论剑开关
    if 华山论剑开关 then
       天梯匹配 = {}
       广播消息("#xt/#y/华山论剑活动已经开放，各位玩家可前往长安城华山论剑NPC参加活动")
      发送网关消息("华山论剑开启")
    else
        for n,p in  pairs (玩家数据) do
          if 玩家数据[n] ~= nil then
            游戏活动类:刷新华山论剑排行(n)
          end
         end
          广播消息("#xt/#y/华山论剑活动已经结束。")
          发送网关消息("华山论剑结束")
    end

  elseif data == "幻域迷宫开关" then
    if 幻域迷宫开关 then
       任务控制类:关闭幻域迷宫()
        发送网关消息("幻域迷宫关闭")
    else
        任务控制类:开启幻域迷宫()
        发送网关消息("幻域迷宫开启")
    end

  elseif data =="门派闯关开关" then
    if 门派闯关开关 then
       任务控制类:结束门派闯关活动()
        发送网关消息("门派闯关结束")
          游戏活动类:刷新门派闯关排行()
          发送游戏公告("门派闯关排行已刷新，请前往门派闯关使查看")

    else
       -- 活动数据.闯关星级={}
        任务控制类:开启门派闯关活动()
        发送网关消息("门派闯关开启")


    end
  -- elseif data == "皇宫飞贼开关" then
  --   飞贼开关 = not 飞贼开关
  --   if 飞贼开关 then
  --      广播消息("#xt/#y/皇宫飞贼活动已经开放，各位玩家可前往长安城御林军左统领处领取任务")
  --     发送网关消息("皇宫飞贼开启")
  --   else

  --     广播消息("#xt/#y/皇宫飞贼活动已经结束。玩家将无法领取新的任务，未完成的任务仍然可以继续完成。")
  --     发送网关消息("皇宫飞贼结束")
  --   end
  elseif data =="皇宫飞贼开关" then
   全服BOSS开关 = not 全服BOSS开关
    if 全服BOSS开关 then
    吆五喝六数量 = 0
      世界BOSS数据={}
     全服BOSS排行={}
      世界BOSS气血=f函数.读配置(ServerDirectory.."config.ini","mainconfig","bosshp")+0
      任务控制类:刷出吆五喝六()
       广播消息("#xt/#y/吆五喝六活动已经开放，各位玩家可前往北俱芦洲吆五喝六BOSS参加活动")
      发送网关消息("吆五喝六开启")
    else
      吆五喝六数量 = 0
      广播消息("#xt/#y/吆五喝六活动已经结束。")
      发送网关消息("吆五喝六结束")
      for n, v in pairs(战斗准备类.战斗盒子) do
           if 战斗准备类.战斗盒子[n].战斗类型== 888902  then
              战斗准备类.战斗盒子[n]:强制结束战斗()
              战斗准备类.战斗盒子[n]=nil
             end
        end
      for n,p in  pairs (玩家数据) do
       if 玩家数据[n]~=nil then
         游戏活动类:刷新全服BOSS排行(n)
       end
      end
    end

  elseif data == "首席争霸开关" then
    if  首席争霸赛战斗开关 then
       游戏活动类:结束首席争霸门派(1, 3, 0, 0)
       发送网关消息("首席争霸结束")
    else
       if 首席争霸赛进场开关 then
          游戏活动类:开启首席争霸赛()
      else
           广播消息("#xt/#r/ 首席争霸赛活动已经开启入场，10分钟后将无法进入比赛地图。请各位玩家提前找本门派首席弟子进入比赛地图。")
            首席争霸赛进场开关 = true
            首席争霸赛战斗开关 = false
          发送网关消息("首席争霸进场开启需要在按一下开启战斗")
      end
    end
  elseif data == "比武大会开关" then
     if  比武大会开始开关 then
          发送游戏公告("比武大会活动已结束。玩家将无法发起攻击。奖励将在服务器下一次重启时消除，请尽快前往兰虎处领取奖励")
          比武大会开始开关 = false
          发送网关消息("比武大会结束")
    else
       if 比武大会进场开关 then
            发送游戏公告("比武大会活动已开启。各位比武场内的玩家可以通过Alt+A对对方发起攻击。")
           比武大会进场开关 = false
            比武大会开始开关 = true
            地图处理类:重置比武大会玩家()
            发送网关消息("比武大会PK开启")
       else
           比武大会进场开关 = true
           发送游戏公告("比武大会活动即将开启，各位玩家现在可以通过长安城兰虎进入比武场。20分钟后将无法进入比武场。请参加活动的玩家提前进入比武场。")
            发送网关消息("比武大会进场开启需要在按一下开关开启战斗")
       end
    end
  elseif data == "调试开关" then
  DebugMode = not DebugMode
      发送网关消息("DebugMode状态为"..tostring(DebugMode))

  elseif data == "每日金钱排行" then
     local TempMoney ={}
      for k,v in pairs(MoneyLog) do
        TempMoney[#TempMoney+1] = {ID=k,金额=v}
      end
      table.print(TempMoney)
      table.sort(TempMoney,function(a, b)
        if a.金额 == b.金额 then
          return  a.ID > b.ID
        end
        return  a.金额 > b.金额 end)
      local stringMsg = "----------每日金钱排行(每日中午12点重新记录)---------"
     for i=1,#TempMoney do
       stringMsg=stringMsg.."\r\n".."ID: "..TempMoney[i].ID.."\t\t金额: "..TempMoney[i].金额
     end

       发送网关消息(stringMsg)

  elseif data == "全局存档" then
  Save()
      发送网关消息(string.format("%s成功",data))

  elseif data == "清空排行数据" then
    Ranking = {}
    local 数组 ={"属性排行","积分排行","数据排行"}
    local 排行属性 = {{"气血排行","防御排行","伤害排行","速度排行","命中排行","灵力排行","魔法排行","躲避排行"},
                    {"门贡排行","知了积分","长安保卫","活动积分","比武积分","副本积分","成就积分","单人积分"},
                    {"银子排行","储备排行","积累经验","经验排行","仙玉排行","累冲排行","积累银子","人物等级"}}

    for i = 1,#数组 do
      Ranking[数组[i]] = {}
      for o = 1,8 do
        Ranking[数组[i]][排行属性[i][o]]={}
        for io = 1,20 do
          Ranking[数组[i]][排行属性[i][o]][io] = {名称="无",数值=0}
        end
      end
    end
      捐赠排行={}
      发送网关消息(string.format("%s成功",data))
  elseif data == "清除竞拍" then
  竞拍信息=nil
      发送网关消息(string.format("%s成功",data))
    elseif data == "知了积分排行" then
      --清理任务信息(任务数据)
      --发送网关消息(string.format("%s成功",data))
  elseif data == "清除任务数据" then
      清理任务信息()
      发送网关消息(string.format("%s成功",data))
  elseif data == "重置活动次数" then
    活动数据={科举名单={},降妖伏魔={},锦衣碎片={},强化珠={},大雁塔数据={},嘉年华数据={},活跃度={},宝藏山名单={},平定安邦={},师门名单={},无限轮回={},群雄逐鹿={},蚩尤挑战={},抓鬼={},除暴安良={},押镖={},官职={},鬼王={},乌鸡={},车迟={},双倍={},每日答题={},打图={},自动次数={},捐献次数={},月卡次数={},闯关星级={},本日镇魔={},灵狐次数={},天赐次数={},本日副本={},本日边境={},本日祈福={}}
  for n = 1,100 do
       活动数据.大雁塔数据[n]={}
     end
    游泳比赛数据 = {}
    天罚数据表 = {}
    登顶排行={排行={}}
    任务控制类:结束门派闯关活动()
   任务控制类:开启门派闯关活动()
        发送网关消息(string.format("%s成功",data))
        for n,v in pairs(至尊卡) do
  至尊卡[n] = {开通=v.开通,次数=v.次数,时间=v.时间,累计=v.累计}
  end
  -- elseif data == "维护通知" then
  --       服务器关闭 = {计时 = 60,开关 = true,起始 = os.time()}
  --       发送游戏公告("各位玩家请注意，服务器将在1分钟后关闭，请所有玩家提前下线。")
  --       广播消息("#xt/#y/各位玩家请注意，服务器将在1分钟后关闭，请所有玩家提前下线。")
  --       Save()
  --           发送网关消息(string.format("%s成功",data))
 elseif data =="维护通知" then
    if 烧烤派对开关 then
       烧烤派对:结束烧烤派对()
        发送网关消息("烧烤派对结束")
        发送游戏公告("烧烤派对已结束。")
         广播消息( "#xt/#y/烧烤派对已结束。")
        烧烤派对开关 = false
        结束提醒 = false
    else
       -- 活动数据.闯关星级={}
       结束提醒 = false
        烧烤派对开关 = true
        烧烤派对:开启烧烤派对()
        发送网关消息("烧烤派对开启")

    end
  elseif data =="帮派竞赛开启" then
         帮派竞赛:开启竞赛()
          帮派竞赛.开关=true
          任务控制类:刷出帮战怪物()
          发送游戏公告("帮派竞赛开始，请各位帮战人员开战吧")
          广播消息("帮派竞赛开始，请各位帮战人员开战吧")
          发送网关消息(string.format("%s成功",data))
  elseif data == "帮派竞赛结束" then
      帮派竞赛:结束竞赛()
          发送网关消息(string.format("%s成功",data))
  elseif data == "帮派迷宫开启" then
          帮派竞赛.迷宫开关 = true
          帮派竞赛.准备迷宫开关 = false
          发送游戏公告("帮派迷宫已经开始，请各位帮战人员开战吧")
          广播消息("帮派迷宫已经开始，请各位帮战人员开战吧")
          发送网关消息(string.format("%s成功",data))
  elseif data == "帮派迷宫结束" then
   帮派竞赛:结束迷宫()
       发送网关消息(string.format("%s成功",data))
  elseif data == "帮战宝箱开启" then
     任务控制类:刷出帮战宝箱()
          发送游戏公告("宝箱已经散落到帮战奖励地图中，10分钟后将关闭，请获胜帮派取地图中捡取宝箱")
          广播消息("#xt/#y/宝箱已经散落到帮战奖励地图中，10分钟后将关闭，请获胜帮派取地图中捡取宝箱")
              发送网关消息(string.format("%s成功",data))
  elseif data == "帮战宝箱结束" then
        帮派竞赛.宝箱开关 = false
           地图处理类:传送地图玩家(1380)
               发送网关消息(string.format("%s成功",data))
  elseif data == "随机仙玉" then
     local 随机银子 = math.random(20, 200)
     for k,v in pairs(玩家数据) do
       if not v.假人  and v.角色.等级 > 68 then
       角色处理类:添加仙玉(v,随机银子,"GM奖励")
       广播消息(9,"#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的新年红包，打开一看竟是#r/" .. 随机银子 .. "#y/仙玉。#S/快喊上你的朋友一起来组队吧！玩家热情不断,GM福利嗨翻天".."#"..math.random(110))
     end
    end
    发送网关消息(string.format("发送全服%s成功",data))
  elseif data == "随机储备" then
     local 随机银子 = math.random(200000, 9000000)
     for k,v in pairs(玩家数据) do
       if not v.假人  and v.角色.等级 > 68 then
       角色处理类:添加储备(v,随机银子,"GM奖励")
       广播消息(9,"#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的新年红包，打开一看竟是#r/" .. 随机银子 .. "#y/储备金。#S/快喊上你的朋友一起来组队吧！玩家热情不断,GM福利嗨翻天".."#"..math.random(110))
     end
    end
     发送网关消息(string.format("发送全服%s成功",data))
  elseif data =="随机银子" then
      local 随机银子 = math.random(500000, 2000000)
     for k,v in pairs(玩家数据) do
       if not v.假人  and v.角色.等级 > 68 then
        角色处理类:添加银子(v,随机银子,"GM奖励")
       广播消息(9,"#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的新年红包，打开一看竟是#r/" .. 随机银子 .. "#y/银子。#S/快喊上你的朋友一起来组队吧！玩家热情不断,GM福利嗨翻天".."#"..math.random(110))
     end
   end
    发送网关消息(string.format("发送全服%s成功",data))
  elseif data == "随机兽决" then
    for k,v in pairs(玩家数据) do
       if not v.假人  and v.角色.等级 > 68 then
       道具处理类:给予道具(k,"魔兽要诀")
       广播消息(9, "#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的新年红包，打开一看竟是#g/魔兽要诀".."#"..math.random(110))
      end
    end
    发送网关消息(string.format("发送全服%s成功",data))
  elseif data == "随机高级兽决" then
     for k,v in pairs(玩家数据) do
      if not v.假人  and v.角色.等级 > 68 then
        local 随机兽决 = 取垃圾兽诀名称()
        道具处理类:给予道具(k,"高级魔兽要诀",nil,随机兽决)
       广播消息(9, "#xt/#g/ " .. v.角色.名称 .. "#y/获得了游戏管理员赠送的开服红包，打开一看竟是#g/"..随机兽决.."#"..math.random(110))
     end
   end
    发送网关消息(string.format("发送全服%s成功",data))
  end
end

return 管理工具类